package com.edou.auth.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Repository;

import com.edou.auth.dto.RoleCondition;
import com.edou.auth.entity.Role;

/**
 * 角色dao
 * @creator     admin
 * @create-time 2016年2月15日   上午11:55:18
 * @email admin@edou.com
 * @company www.edou.com
 * @version 1.0
 */
@Repository("roleDaoImpl")
public interface IRoleDao {

	/**
	 * 查询所有角色
	 */
	List<Role> listRoleAll();
	
	/**
	 * 根据用户id查询角色列表
	 * @param userId
	 * @return
	 */
	List<Role> listRoleByUserId(@Param("userId")String userId);

	/**
	 * 获取角色总数
	 * @param condition
	 * @return
	 */
	int listRoleByPageCount(@Param("condition") RoleCondition condition);

	/**
	 * 根据条件查询角色
	 * @param condition
	 * @return
	 */
	List<Role> listRoleByPage(RowBounds bounds,@Param("condition") RoleCondition condition);

	/**
	 * 获取角色
	 * @param id
	 * @return
	 */
	Role getRoleById(@Param("id") String id);
	
	/**
	 * 根据角色代码查询角色
	 * @param code
	 * @return
	 */
	Role getRoleByCode(@Param("code")String code);
	
	/**
	 * 根据角色代码获取数量
	 * @param item
	 * @return
	 */
	Integer getCountByCode(Role item);

	/**
	 * 新增角色
	 * @param saveRoleVO
	 */
	void add(Role item);

	/**
	 * 更新
	 * @param saveRoleVO
	 */
	void update(Role item);

	/**
	 * 删除角色
	 * @param id
	 */
	void delByIds(String[] ids);
	
}
